package com.example.quartzdemo.util;

import com.example.quartzdemo.context.TaskConst;

public class CronUtil {
    /**
     * 生成CRON表达式
     * @param type 类型：每天、每周、每月
     * @param hour 时
     * @param minute 分
     * @param dayOfWeek 星期
     * @param dayOfMonth 日期
     * @return CRON表达式或null
     */
    public static String generateCronExpression(int type, int hour, int minute, int dayOfWeek, int dayOfMonth) {
        switch (type) {
            case 1:
                return String.format("0 %d %d * * ?", minute, hour);
            case 2:
                return String.format("0 %d %d ? * %s", minute, hour, TaskConst.DayOfWeekEnum.getByCode(dayOfWeek).getName());
            case 3:
                return String.format("0 %d %d %d * ?", minute, hour, dayOfMonth);
            default:
                return null;
        }
    }

}
